Remote installation of software on a computing device

ABSTRACT

Remote installation of an update of software is forwarded by a management information system into a remote computer. When a primary communication path between the management information system and the remote computer is unavailable and an alternate communication path is available, a connection is established between the management information system and the remote computer using the alternate communication path. The management information system requests from the remote computer the current version information about the software within the remote computer. When the management information system determines the current version of the software within the remote computer needs to be updated, the management information system determines whether the alternate communication path is adequate for downloading the update of the software. When the management information system determines that the alternate communication path is adequate for downloading the update of the software, the update of the software is downloaded from the management information system to the remote computer.

CROSS REFERENCE TO RELATED APPLICATION(S)

This is a divisional of application Ser. No. 08/728,004 filed on Oct.9,1996, now U.S. Pat. No. 5,809,251.

BACKGROUND

The present invention concerns management of computing devices andpertains particularly to the installation of software on a remotecomputing device.

Management information systems (MIS) are used to manage computingdevices by monitoring and checking inventory, taking the current statusof machine configurations (such as current memory configurations, harddrive capacity, RAM, CPU and other upgrades) as well as to monitor usagepatterns. An MIS console 11 for an MIS system generally utilizes adesktop management interface (DMI) located within each personal computer(PC) or server. DMI is a standard interface which handles communicationbetween management applications and all the manageable elements on orattached to a personal computer or server. DMI provides thecommunication between any management application and the manageableelements on a system. Within the DMI, the standard way of describingelements is provided by the management information format (MIF). The MIFis a prescribed grammar and syntax to an element's manageableattributes. MIF files are standard at the group level and at the elementlevel, so common aspects of many different elements can be provided byusing standard MIF files and MIF groups. Standard MIF files and groupsexist for many common elements.

Within the DMI, a service layer is a program, running on the localmachine or personal computer, that collects information from elements,manages that information in the MIF database, and passes the informationto management applications as requested. The service layer controlscommunication between itself and management applications by means of amanagement interface (MI) and between itself and manageable elements bymeans of a component interface (CI). For example, a service layerinterface for Windows 3.1X operating system is available from IntelCorporation, having a business address of 2200 Mission CollegeBoulevard, Santa Clara, Calif. 95050.

Within the DMI, management applications are remote or local programsused for changing, interrogating, controlling, tracking and listing theelements of a system. A management application can be a localdiagnostics or installation program, or a remote agent which redirectsinformation from the DMI service layer over a network.

Manageable elements are hardware, software or peripherals that occupy orare attached to a personal computer or network server. For instancemanageable elements include hard disks, word processors, CD-ROMs,printers, motherboards, operating systems, spreadsheets, graphics cards,sound cards, or modems. Each element provides information to the MIFdatabase by means of an MIF file which contains the pertinent managementinformation for that element. The information in the MIF file iscompiled into the MIF database when the element is installed.

MIS managers can query individual machines to access DMIs and MIFdatabases on individual machines in order to obtain current informationstored therein. Based on this information, MIS managers can scheduleupgrades for outdated hardware and software configurations.

While an MIS has been used effectively to manage PCs and serversinterconnected by a local area network (LAN), there has been no similareffective strategy to manage devices which are not connected to a LAN.For example, there is no effective strategy to manage portable computerswhich are seldom or never permanently connected to a LAN. Yet with theproliferation of the usage of portable computers, it is desirable toinclude such devices within an MIS.

SUMMARY OF THE INVENTION

In accordance with the preferred embodiment of the present invention,remote installation of an update of software is forwarded by amanagement information system into a remote computer. When a primarycommunication path between the management information system and theremote computer is unavailable and an alternate communication path isavailable, a connection is established between the managementinformation system and the remote computer using the alternatecommunication path. The management information system requests from theremote computer the current version information about the softwarewithin the remote computer. When the management information systemdetermines the current version of the software within the remotecomputer needs to be updated, the management information systemdetermines whether the alternate communication path is adequate fordownloading the update of the software. When the management informationsystem determines that the alternate communication path is adequate fordownloading the update of the software, the update of the software isdownloaded from the management information system to the remotecomputer.

In the preferred embodiment, when the management information systemdetermines that the alternate communication path is not adequate fordownloading the update of the software, the download of the update ofthe software from the management information system to the remotecomputer is queued for performance when the computer is connected to theprimary communication path or another alternative path.

For example, the primary communication path is through a local areanetwork or alternately through a public telephone system or some otherconnection media, e.g., the internet. Likewise, for example, thealternate communication path is through a two-way paging network system,through a public telephone system, or through some other connectionmedia.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows the connected relationship between a management informationsystem (MIS) console and a portable computer in accordance with apreferred embodiment of the present invention.

FIG. 2 shows a management information system (MIS) which includesportable computers in accordance with a preferred embodiment of thepresent invention.

FIG. 3 shows an enhanced desktop management interface (DMI) which hasbeen modified for use in a portable computer in accordance with apreferred embodiment of the present invention.

FIG. 4 shows an enhanced desktop management interface (DMI) which hasbeen modified for use in a portable computer in accordance with analternate preferred embodiment of the present invention.

FIG. 5 shows a table within an MIS console which is used to select acommunication path to managed elements in accordance with a preferredembodiment of the present invention.

FIG. 6 shows a table within a personal computer which is used to selecta communication path to an MIS console in accordance with a preferredembodiment of the present invention.

FIGS. 7A and 7B are a flowchart which illustrates remote code update ofa remote computer in accordance with a preferred embodiment of thepresent invention.

FIGS. 8A and 8B are a flowchart which illustrates the establishment ofcommunication with a remote computer in accordance with a preferredembodiment of the present invention.

FIGS. 9A and 9B are a flowchart which illustrates actions taken when aremote computer is reported lost or stolen in accordance with apreferred embodiment of the present invention.

FIG. 10 is a flowchart which illustrates the use of remote management toinitialize software metering in accordance with a preferred embodimentof the present invention.

FIG. 11 is a flowchart which illustrates one type of software metering(periodic time style) initialized using remote management in accordancewith a preferred embodiment of the present invention.

FIG. 12 is a flowchart which illustrates another type of softwaremetering (counter style) initialized using remote management inaccordance with a preferred embodiment of the present invention.

FIG. 13 is a flowchart which illustrates another type of softwaremetering (timed use style) initialized using remote management inaccordance with a preferred embodiment of the present invention.

FIG. 14 is a flowchart which illustrates another type of softwaremetering (interactive style) initialized using remote management inaccordance with a preferred embodiment of the present invention.

FIG. 15 is a flowchart which illustrates control of software meteringwhen a coupon is expired in accordance with a preferred embodiment ofthe present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 shows a management information system (MIS) console 11 connectedthrough an interconnection 10 to a portable computer 16. The dotted linebetween interconnection 10 and portable computer 16 indicates thatportable computer 16 may be only intermittently available throughinterconnection 10. Interconnection 10 may include any combination ofcommunications technology. For example, interconnection may include one,or a combination of, a local area network, a wide area network, theinternet, the world wide web, a public telephone system, a privatetelephone system, a modem, a paging network system, radio frequencytransmission, a cellular phone system, and so on.

For example, FIG. 2 shows a management information systems (MIS) whichincludes MIS console 11 and a network access 12. Network access 12 is,for example, a network server, a network provider, an internet access ora world wide web access. Network access 12 is connected through a localarea network (LAN) 22 to a portable computer 20 and a computer 21. Basedon the discretion of the user of portable computer 20, portable computer20 may or may not be permanently attached to LAN 22. In addition toportable computer 20 and computer 21, other personal computers, serversand portable computers may be connected to LAN 22.

Network access 12 is connected to a telephone system 14 through a modem13. A portable computer 17 and a portable computer 18 utilize telephonesystem 14 to connect network access 12 and, when connected are availableto MIS console 11.

A paging network server 15 is connected to telephone system 14. Throughtwo-way paging network server 15, MIS console 11 is able to contactportable computer 16. Use of two-way paging network server 15 has theadvantage of making portable computer 16 always available to MIS console11.

A portable computer 19 is not connected to any network and is thuscurrently unavailable to MIS console 11. Once portable computer 19 isconnected to LAN network 22, telephone system 14 and/or paging networkserver 15, MIS console 11 will be able to access portable computer 19.

Enhanced Desktop Management Interface

FIG. 3 illustrates an enhanced desktop management interface (DMI)located within each of personal computers 16 through 20. Within the DMI,a service layer 30 collects information from elements, manages thatinformation in an MIF database 33, and passes the information tomanagement applications as requested.

Service layer 30 controls communication between itself and managementapplications by means of a management interface (MI) 31 and betweenitself and manageable elements by means of a component interface (CI)32.

Management applications are remote or local programs for changing,interrogating, controlling, tracking and listing the elements of asystem. A management application can be a local diagnostics orinstallation program, or a remote agent which redirects information fromDMI service layer 30 over a network. For example, in FIG. 3, managementinterface 31 is shown to interface to a support management application34, a DMI application 35, a LAN management application 36 and a setupprogram 37. Management interface 31 also interfaces to other managementapplications, as represented by an other management application 38.

Manageable elements are hardware, software or peripherals that occupy orare attached to a portable computer. For example, in FIG. 3, componentinterface 32 is shown interfacing with a word processor 41, a hard disk42 and a CD-ROM 43. Component interface 32 also interfaces to othermanageable elements, as represented by other element 45.

Within management information format (MIF) database 33 there is storedMIF files for the manageable elements and the management applications.

A communication management application 39, connected to managementinterface 31, and a communication device 44, connected to componentinterface 32 are added to the DMI in order to provide an alternatecommunication path for MIS. Communication device 44 is, for example, atwo-way pager. Alternately, communication device 44 is a modem, a radiofrequency transceiver or some other connection to a communication mediumwhich allows the personal computer to establish contact with an MISconsole 11. In some embodiments of the present invention, communicationcan be one-way, for example, implemented using a one-way pager.Communication through communication device 44 is controlled bycommunication management application 39.

The existence of an alternate communication path for MIS increasesflexibility for an MIS manager. In effect, the existence of thealternate communication path for MIS allows an MIS manager to manageportable computers and other devices which are not directly connected toa LAN. The alternate communication path can be used, for example, by theMIS manager to direct a managed portable computer of the need to connectto a primary communication path in order to receive an update.

FIG. 4 illustrates an alternate structure for the enhanced desktopmanagement interface (DMI) shown in FIG. 3. In FIG. 4, a communicationmanagement application 50 is connected to each of the managementapplications. For example, as shown in FIG. 4, communication managementapplication 50 is connected to support management application 34, DMIapplication 35, LAN management application 36 and setup program 37.Communication management application 50 also interfaces to othermanagement applications, as represented by other management application38.

Communication management application 50 selects a communication path toMIS console 11. For example, communication management application 50uses an LAN interface 51, a modem interface 52 or a two-way pagerinterface 53 to establish a communication path to MIS console 11.Alternately, communication device 44 is a modem, or some otherconnection to a communication medium which allows the personal computerto establish contact with an MIS console 11.

Within communication management application 50, the availablecommunication paths are priority ranked. For example, the communicationmanagement application 50 will communicate with MIS console 11 over LAN22 when the personal computer is connected to LAN 22. If communicationmanagement application 50 is not connected to an LAN with access to MISconsole 11, communication management application 50 will establishcontact with MIS console 11 over public telephone system 14 using modeminterface 52. If communication management application 50 is notconnected to an LAN with access to MIS console 11 and access over publictelephone system 14 using modem interface 52 is not available,communication management application 50 will establish contact with MISconsole 11 using two-way pager interface 53 to make contact with pagingnetwork server 15.

Because the rate of data transfer between MIS console 11 and thepersonal computer depends upon which communication path is used, thereare some transactions which are restricted, depending of thecommunication path. For example, when contact with MIS console 11 isestablished using two-way pager interface 53 to make contact throughpaging network server 15, major downloads of software from MIS console11 or major uploads of database data from MIS console 11 are notperformed.

FIG. 5 shows a table 60 within MIS console 11 which lists variousdevices managed by MIS console 11. For each managed device, indescending order of priority, the potential communication path types arelisted. For each potential path type, an address, cost, throughput rateand expected response time are listed.

Specifically, as shown in FIG. 5, a column 61 of table 60 lists thedevice by device number. In column 61, portable computer 16, portablecomputer 17, portable computer 18, portable computer 19, portablecomputer 20 and computer 21 are listed.

In a column 62 of table 60, various communication path types are listedfor each listed device. For the example shown in FIG. 5, each listeddevice can be contacted using one or more of the following path types:LAN, MODEM, PAGER. The path type of LAN indicates that MIS console 11can contact the device through LAN 22 or some other LAN. The path typeof MODEM indicates that MIS console 11 can contact the device throughtelephone system 14. The path type of PAGER indicates that MIS console11 can contact the device through paging network server 15.

In a column 63 of table 60, the address of the device over thecommunication path is listed. This address is specific to the particulardevice.

In a column 64 of table 60, a cost code is listed which indicates forthe listed device a cost for the connection. This cost code is used byMIS console 11 to determine whether, for a particular managementoperation, it is desirable to utilize this communication path to performthe management operation, depending upon urgency. In FIG. 5, there arethree cost codes listed. For example, the TIME DEP cost code indicatesthat the particular cost is time dependent. In this case, there is avery low cost for performing a management operation in off hours, and ahigher cost for performing the management operation in normal workinghours. Thus, unless it is important to perform a particular managementoperation immediately, MIS console 11 can elect to perform themanagement operation at a later time. The MODEM cost code is the costcode assigned when telephone system 14 is used to complete the call.Generally, the MODEM cost is higher than the TIME DEP cost. The PAGERcost code is the cost code assigned when paging network server 15 isused to complete the call. Generally, the PAGER cost is higher than theMODEM cost. Other alternative communication methods also can be rankedaccordingly.

In a column 65 of table 60, a throughput rate is listed which indicatesfor the listed device a throughput rate for the particular communicationpath. For communication paths though telephone system 14, the throughputrate can vary based on the throughput rate of a modem installed withinthe device.

In a column 66 of table 60, a response time is listed which indicates anexpected response time for the device to respond when contacted throughthe particular communication path. Alternately, the listed response timeindicates a maximum allowed response time for the device to respond whencontacted through the particular communication path. When the devicefails to respond, this indicates to MIS console 11 that the device isnot available to be contacted through the chosen communication path. MISconsole 11 can then choose to attempt connection through an alternatecommunication path for the device, try the same communication path atanother time, or abandon the attempt to contact the device.

Likewise, the individual personal computers can similarly prioritizedata communication paths for contacting MIS console 11 to initiate orrespond to significant MIS events such as hardware failure warnings.Upon detection of a significant event, communications managementapplication 50 can inform the user of the personal computer of the eventor can automatically contact MIS console 11 through an availablecommunication data path.

For example, FIG. 6 shows a table 70 within personal computer 18 whichlists in descending order of priority, the potential communication pathtypes to MIS console 11. For each potential path type, an address, cost,throughput rate and expected response time are listed.

Specifically, as shown in FIG. 6, in a column 72 of table 70, variouscommunication path types are listed. For the example shown in FIG. 6,personal computer 18 can contact MIS console 11 through the followingpath types: LAN, MODEM, PAGER.

In a column 73 of table 70, the address of MIS console 11 over thecommunication path is listed. This address is specific to MIS console11.

In a column 74 of table 70, a cost code is listed which indicates forthe listed device a cost for the connection. This cost code is used byportable computer to determine whether, for a particular managementoperation, it is desirable to utilize this communication path to performthe management operation, depending upon urgency. In FIG. 6, there arethree cost codes listed, as further discussed above.

In a column 75 of table 70, a throughput rate is listed which indicatesfor the listed device a throughput rate for the particular communicationpath. For communication paths though telephone system 14, the throughputrate can vary based on the throughput rate of a modem installed withinthe device.

In a column 76 of table 70, a response time is listed which indicates anexpected response time for the device to respond when contacted throughthe particular communication path. Alternately, the listed response timeindicates a maximum allowed response time for the device to respond whencontacted through the particular communication path. When the devicefails to respond, this indicates to portable computer 18 that MISconsole 11 is not available to be contacted through the chosencommunication path. Portable computer 18 can then choose to attemptconnection to MIS console 11 through an alternate communication path,try the same communication path at another time, or abandon the attemptto contact MIS console 11.

Using alternate communication paths to manage portable computers andother devices offer some significant advantages. For example, codeupdates can be down loaded to devices even when they are not physicallyattached to any network. Additionally, management access to a computingdevice is a significant security feature. For example, sensitive datacan be erased from a lost or stolen computing device. Similarly, a lostor stolen computing device can be instructed not to boot up. Also, thealternate communication path could be used as an alarm to indicate to amanager that the computing device has been disconnected from a networkwithout authorization.

Also, the alternate communication path can be utilized as a low speednetwork for data communication, even allowing e-mail or low-throughputconnection to the internet.

Remote Code Update/Installation

FIGS. 7A and 7B are a flowchart which illustrates remote code update ofa remote computer in accordance with a preferred embodiment of thepresent invention. The same process may be used for installation ofsoftware on a remote computer. A left half 79 of the flow chart showsthe activity of an MIS system. A right half 80 of the flow chart showsthe activity of a remote computer.

In a step 81, the MIS system initiates a request to verify softwareversions on the remote computer. In a step 82, the MIS systemestablishes communication with the remote computer. In a step 83, theremote computer receives a valid message request. In a step 84, aninternal check of the remote computer is made to determine whether thehost processor within the remote computer is powered up. In a step 85,if the remote computer is asleep, it is awakened. In a step 86, theremote computer acknowledges to the MIS system that the remote computeris connected and ready for further transmissions.

In a step 87, the MIS system determines whether there is a validconnection. If there is not a valid connection, in a step 88, the MISsystem queues the request for a later attempt. If in step 87, the MISsystem determines there is a valid connection, in a step 89, the MISsystem requests from the remote computer the version number of the imageof the software on the hard drive of the remote computer. In a step 90,the remote computer processes the requests and forwards the requesteddata to the MIS system. In a step 91 the data is received from theremote computer by the MIS system.

In a step 92, the MIS system determines whether the image needsupgrading. If upgrading is needed, in a step 93, the MIS systemdetermines whether the connection is appropriate for the action. If theconnection is appropriate for the action, in a step 94, the MIS systembegins to down load the new files to the remote computer. In a step 99the remote computer downloads the files into separate area checks. In astep 100, the remote computer displays a note to the user about theresults of the action. In a step 101, the remote computer acknowledgesthe operation to the MIS system. In a step 102, the remote computerrequests the user to close files and reboot the remote computer.

If in step 93, the MIS system determines that the connection is notappropriate for the action, in a step 95, the MIS system leaves a noteto request appropriate correction of user through an appropriateconnection. In a step 96, the MIS system queues a remote request for thenext appropriate connection.

When the MIS system is ready to close the connection, in a step 97, theMIS system updates its data base information on the customer. In a step98, the MIS system removes the communication link with the remotecomputer. In a step 103, the remote computer removes its communicationslink with the MIS system.

Establishing Connection with a Remote Computer

FIGS. 8A and 8B are a flowchart which illustrate the establishment ofcommunication with a remote computer in accordance with a preferredembodiment of the present invention. A left half 110 of the flow chartshows the activity of an MIS system. A right half 111 of the flow chartshows the activity of a remote computer.

In a step 112, the MIS system searches the LAN to which the MIS systemis connected in order to determine whether the target remote computer isconnected to that LAN. In a step 113, the MIS system determines whetherthe remote computer is connected to the LAN. If the remote computer isconnected to the LAN, in a step 114, the MIS system establishesconnection with the remote computer. In a step 115, the remote computeracknowledges the connection. In a step 116, the connection is completed.

If in step 113, the MIS system determines the remote computer is notconnected to the LAN, in a step 117, the MIS system initiates analternative path to the remote computer which requests the status of theremote computer and the various connection paths or types which could beused by the MIS system to connect to the remote computer. For example,the alternative path could be a page or a telephone connection. In astep 118, the remote computer responds with its current connectioncapabilities.

In a step 119 the MIS system selects the appropriate type connection forthe particular activity required. In a step 120, the MIS systemdetermines whether the appropriate connection type is an LAN. If so, ina step 121, the MIS system establishes a link profile. The link profileindicates, for example, whether the link is fast, has a small delay, oris inexpensive. In a step 122, the remote computer establishes an LANconnection with the MIS system. In a step 123, the MIS system determineswhether the appropriate connection type is a telephone system. If so, ina step 124, the MIS system establishes a link profile. The link profileindicates, for example, whether the link is fast, has a small delay, oris inexpensive. In a step 125, the remote computer establishes atelephone connection with the MIS system.

In a step 126, the MIS system determines whether the appropriateconnection type is a pager. If so, in a step 127, the MIS systemestablishes a link profile. The link profile indicates, for example,whether the link is fast, has a small delay, or is inexpensive. In astep 128, the remote computer determines whether reception is acceptableto establish the link. If reception is unacceptable, in a step 130, theremote computer denies the request for a link.

When a link has been established in step 122, 125 or 128, in a step 132,the remote computer verifies to the MIS system that the connection isestablished. In a step 133, the connection is complete. As will beunderstood by persons of ordinary skill in the art, in addition to theconnection types shown, other connection technologies may also be usedto establish a link.

When there is no appropriate type of link available for connection, in astep 129, the MIS system queues requests for the remote computer for alater attempt. In a step 131, the MIS system notes that the connectionis incomplete.

Computer Security

FIGS. 9A and 9B are a flowchart which illustrate actions taken when aremote computer is reported lost or stolen in accordance with apreferred embodiment of the present invention. A left half 140 of theflow chart shows the activity of an MIS system. A right half 141 of theflow chart shows the activity of a remote computer.

In a step 142, the computer is reported stolen or lost by the owner. Ina step 143, a verification of the report is made to determine thelegitimacy of the report. Steps 142 and 143 is performed, for example,by an operator or manager of the MIS system. In a step 144, the MISsystem establishes communication with the remote (stolen or lost)computer. In a step 145, the remote computer receives a valid messagerequest. In a step 146, an internal check of the remote computer is madeto determine whether the host processor within the remote computer ispowered up? In a step 147, if the remote computer is asleep, it isawakened. In a step 148, the remote computer acknowledges to the MISsystem that the remote computer is connected and ready for furthertransmissions.

In a step 149, the MIS system determines whether there is a validconnection. If there is not a valid connection, in a step 150, the MISsystem queues the request for a later attempt. If in step 149, the MISsystem determines there is a valid connection, in a step 151, the MISsystem initiates a command to lock the computer and/or to encrypt orerase the data of the user. In a step 152 the remote computer respondsby locking the computer and/or encrypting or erasing the data of theuser. In a step 153, the remote computer acknowledges the command hasbeen completed. In a step 154, the MIS system removes the connection. Ina step 155, the remote computer disconnects the link.

Software Metering

FIGS. 10 through 15 illustrate flow for various types of softwaremetering which can be done using remote management. Software meteringprovides for limits, of one sort or another, on the use of software. Asillustrated below, various types of metering can be used. Theflexibility allows for various applications such as, for example, timedexaminations, games with various levels and trial periods.

FIG. 10 is a flowchart which illustrates the use of remote management toinitialize software metering in accordance with a preferred embodimentof the present invention. In a step 161, a request activation,re-activation or change of parameters in software is made. This can beinitiated by a user using the computer system. Alternatively, asillustrated by a step 164, a remote management entity (e.g., a managerof information systems or an instructor) can initiate a new parametersession. The remote management entity initiates change, for example,when it is necessary to update computer systems where a site license hassuperseded terms for individual licenses.

Once a the request for activation, re-activation or change of parametersin software is made, in a step 162, the terms of the activation,re-activation or change of parameters is agreed upon by the computersystem and the remote management. The terms include, for example, methodof payment and the style of software metering which is to be used. Oncean agreement on terms is reached, in a step 163, a user of the computersystem is notified, for example, by an activation message or anactivation page being sent to the computing system and appropriatelydisplayed or made available to the user. In a step 163 a coupon isactivated in accordance with the terms agreed upon in step 162.

Various styles of software metering may be used, as illustrated by theflowcharts in FIGS. 10, 11, 12 and 13. FIG. 11 is a flowchart whichillustrates a style of software metering which allows usage of softwarefor a set period of time. This style of software metering is useful, forexample, to allow a user a trial period for software. In this style ofsoftware metering, after the coupon is activated in step 165, in a step171, an end date is set after which a user will not be allowed to accessthe software. In a step 172, when a user attempts to access thesoftware, in a step 173, a check is made to see whether the current dateis the end date or after the end date. If the current date is not theend date or after the end date, access to the software is allowed tocontinue. After a set time of delay, as illustrated in a step 175, thecurrent date is checked again in step 173, to check whether the currentdate is the end date or after the end date.

When in step 173, it is determined that the current date is the end dateor after the end date, in a step 174, it is recognized that the end datehas arrived. In a step 176, the coupon allowing usage of the software isexpired. This is handled as is illustrated by FIG. 15 below.

FIG. 12 is a flowchart which illustrates a style of software meteringwhich allows usage of software for a set number of times. This style ofsoftware metering is useful, for example, to allow a user to testsoftware on a trial basis. In this style of software metering, after thecoupon is activated in step 165, in a step 181, a counter parameter isset. After the count has been met, a user will not be allowed to accessthe software. In a step 182, when a user uses the computer, if it isdetected in a step 183, that the user has accessed the software, thecounter is decremented (or incremented depending upon theimplementation). In a step 185, a check is made to see whether thecounter parameter has reached the final count (in the example shown inFIG. 12, the final count is 0). If the counter parameter has not reachedthe final count, the user is allowed to utilized the software. In a step187, user activity is monitored to determine when the software has beenexited. The software is exited, the flow returns to step 182.

If in step 185, the check indicates the counter parameter has reachedthe final count, in a step 176, the coupon allowing usage of thesoftware is expired. This is handled as is illustrated by FIG. 15 below.

FIG. 13 is a flowchart which illustrates a style of software meteringwhich allows usage of software for a set duration of time. This style ofsoftware metering is useful, for example, for examinations, trials ofsoftware or for game applications. In this style of software metering,after the coupon is activated in step 165, in a step 191, a durationparameter is set which indicates the total access time allowed withoutfurther accesses to a host management system. The current accumulatedtime is also initialized to zero. After the duration of time has beenmet, a user will not be allowed to access the software. In a step 192,when a user uses the computer, if it is detected in a step 193, that theuser has accessed the software, a time stamp is used to record thestarting (current) time use of the software begins.

In a step 195, when a user uses the computer, if it is detected in astep 196, that the user has exited the software, in a step 197, theaccumulated time is increased by the amount of time the software wasused. As illustrated by FIG. 13, the amount the accumulated time isincreased is the different between the current time and the begin timestored in step 194. After calculation of accumulated time in step 197,step 192 is repeated.

If in step 196, it is determined that the user has not exited thesoftware, in a step 198 a check is made as to whether the duration oftime has expired (i.e., accumulated time+(current time-begintime)>=Total access time (D)). If the duration time has not expired, ina step 199, a delay is taken, depending on required accuracy, beforechecking for user activity in a step 195.

If, in step 198, the check indicates the duration of time has expired,in a step 176, the coupon allowing usage of the software is expired.This is handled as is illustrated by FIG. 15 below.

FIG. 14 is a flowchart which illustrates a style of software meteringwhich allows usage of software for a interaction level. This style ofsoftware metering is useful, for example, for game applications. In thisstyle of software metering, after the coupon is activated in step 165,in a step 201, certain access levels are authorized. These indicatewhich access levels may be utilized by a user. In a step 202, when auser uses the computer, if it is detected in a step 203 that the userhas not completed an access level, the user is allowed continued accessto the software.

If it is detected in a step 203 that the user has completed an accesslevel, in a step 204, a check is made to determine whether the user isauthorized to use the next level. If it is determined in step 204 thatthe user is authorized to use the next level, the user is allowedcontinued access to the software and returns to step 202.

If it is determined in step 204 that the user is not authorized to usethe next level, in step 176, the coupon allowing usage of the softwareis expired. This is handled as is illustrated by FIG. 15 below.

FIG. 15 is a flowchart which illustrates what happens when in step 176,the coupon allowing usage of the software is expired. In a step 211,access to the software is canceled and the parameters are reset. In astep 212, the user is queried as to whether additional use is requested.If in step 212, the user indicates no additional use is desired, in astep 213, the work is saved for later access by the user or by theremote management system and the software is exited. In a step 214, theactivation status is placed as inactive, which will prevent furtheraccess to the software.

If in step 212, the user indicates additional use is desired, control isreturned to step 161, shown in FIG. 10. In step 161, a requestactivation, re-activation or change of parameters in software is made.

The foregoing discussion discloses and describes merely exemplarymethods and embodiments of the present invention. As will be understoodby those familiar with the art, the invention may be embodied in otherspecific forms without departing from the spirit or essentialcharacteristics thereof. Accordingly, the disclosure of the presentinvention is intended to be illustrative, but not limiting, of the scopeof the invention, which is set forth in the following claims.

We claim:
 1. A method for remote installation of an update of softwareby a management information system into a remote computer comprising thefollowing steps:(a) when a primary communication path between themanagement information system and the remote computer is unavailable andan alternate communication path is available, establishing connectionbetween the management information system and the remote computer usingthe alternate communication path; (b) requesting, by the managementinformation system from the remote computer information, current versioninformation of the software within the remote computer; and, (c) whenthe management information system determines a current version of thesoftware within the remote computer needs to be updated, performing thefollowing substeps:(c.1) determining by the management informationsystem whether the alternate communication path is adequate fordownloading the update of the software, (c.2) when the managementinformation system determines in step (c.1) that the alternatecommunication path is adequate for downloading the update of thesoftware, downloading the update of the software from the managementinformation system to the remote computer; and, (c.3) when themanagement information system determines in step (c.1) that thealternate communication path is not adequate for downloading the updateof the software, refraining from downloading the update of the softwarefrom the management information system to the remote computer.
 2. Amethod as in claim 1 wherein in substep (c.2), downloading the updateincludes:downloading files into separate area checks; and, displaying anote to a user of the remote computer about results of downloading theupdate.
 3. A method as in claim 1 wherein in step (a) the primarycommunication path is through one of a local area network, a publictelephone system and an internet system.
 4. A method as in claim 1wherein in step (a) the alternate communication path is through one of atwo-way paging network system, a public telephone system and an internetsystem.
 5. A method for remote installation of an update of software bya management information system into a remote computer comprising thefollowing steps:(a) establishing a connection link between themanagement information system and the remote computer; (b) obtaining, bythe management information system from the remote computer, currentversion information about the software; (c) when the managementinformation system determines the software on the remote computerrequires updating, performing the following substeps:(c.1) determiningby the management information system whether the connection link isadequate for downloading an update of the software, (c.2) when themanagement information system determines in step (c.1) that theconnection link is adequate for downloading the update of the software,downloading the update of the software from the management informationsystem to the remote computer, and (c.3) when the management informationsystem determines in step (c.1) that the connection link is not adequatefor downloading the update of the software, refraining from downloadingthe update of the software from the management information system to theremote computer.
 6. A method as in claim 1 wherein in substep (c.2),downloading the update includes:downloading files into separate areachecks; and, displaying a note to a user of the remote computer aboutresults of downloading the update.
 7. A method as in claim 1 wherein instep (a) the connection link is through one of a two-way paging networksystem, a public telephone system, and an internet system.
 8. A methodas in claim 1 wherein step (a) includeswhen the remote computer is notcurrently powered up, awakening the remote computer.
 9. A method as inclaim 8 wherein step (a) additionally includesupon awakening, the remotecomputer acknowledges connection and indicates the remote computer isready.
 10. Storage media which stores a software application whichperforms a method for remote installation of an update of software by amanagement information system into a remote computer, the methodcomprising the following steps:(a) establishing a connection linkbetween the management information system and the remote computer; (b)obtaining, by the management information system from the remotecomputer, current version information about the software; (c) when themanagement information system determines the software on the remotecomputer requires updating, performing the following substeps:(c.1)determining by the management information system whether the connectionlink is adequate for downloading an update of the software, (c.2) whenthe management information system determines in step (c.1) that theconnection link is adequate for downloading the update of the software,downloading the update of the software from the management informationsystem to the remote computer, and (c.3) when the management informationsystem determines in step (c.1) that the connection link is not adequatefor downloading the update of the software, refraining from downloadingthe update of the software from the management information system to theremote computer.
 11. Storage media as in claim 10 wherein in substep(c.2), downloading the update includes:downloading files into separatearea checks; and, displaying a note to a user of the remote computerabout results of downloading the update.
 12. Storage media as in claim10 wherein in step (a) the connection link is through one of a two-waypaging network system and a public telephone system.
 13. Storage mediaas in claim 10 wherein step (a) includeswhen the remote computer is notcurrently powered up, awakening the remote computer.
 14. Storage mediaas in claim 13 wherein step (a) additionally includesupon awakening, theremote computer acknowledges connection and indicates the remotecomputer is ready.
 15. A method for remote installation of software by amanagement information system into a remote computer comprising thefollowing steps:(a) when a primary communication path between themanagement information system and the remote computer is unavailable andan alternate communication path is available, establishing connectionbetween the management information system and the remote computer usingthe alternate communication path; (b) when the management informationsystem determines to download software, performing the followingsubsteps:(b.1) determining by the management information system whetherthe alternate communication path is adequate for downloading thesoftware, (b.2) when the management information system determines instep (c.1) that the alternate communication path is adequate fordownloading the software, downloading the software from the managementinformation system to the remote computer, and (b.3) when the managementinformation system determines in step (b.1) that the alternatecommunication path is not adequate for downloading the software,refraining from downloading the software from the management informationsystem to the remote computer.
 16. A method as in claim 15 wherein insubstep (b.2), downloading the software includes:downloading files intoseparate area checks; and, displaying a note to a user of the remotecomputer about results of downloading the update.